package com.example.barnes.ummo.holder;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import com.example.barnes.ummo.R;
import com.github.johnkil.print.PrintView;
import com.unnamed.b.atv.model.TreeNode;
/**
* Created by barnes on 8/6/15.
*/
public class SelectableHeaderHolder extends TreeNode.BaseNodeViewHolder<IconTreeItemHolder.IconTreeItem> {
private TextView tvValue;
private PrintView arrowView;
private CheckBox nodeSelector;
public SelectableHeaderHolder(Context context) {
super(context);
}
@Override
public View createNodeView(final TreeNode node, IconTreeItemHolder.IconTreeItem value) {
final LayoutInflater inflater = LayoutInflater.from(context);
final View view = inflater.inflate(R.layout.layout_selectable_header, null, false);
tvValue = (TextView) view.findViewById(R.id.node_value);
tvValue.setText(value.text);
final PrintView iconView = (PrintView) view.findViewById(R.id.icon);
iconView.setIconText(context.getResources().getString(value.icon));
arrowView = (PrintView) view.findViewById(R.id.arrow_icon);
if (node.isLeaf()) {
arrowView.setVisibility(View.GONE);
}
nodeSelector = (CheckBox) view.findViewById(R.id.node_selector);
nodeSelector.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
node.setSelected(isChecked);
for (TreeNode n : node.getChildren()) {
getTreeView().selectNode(n, isChecked);
}
}
});
nodeSelector.setChecked(node.isSelected());
return view;
}
@Override
public void toggle(boolean active) {
arrowView.setIconText(context.getResources().getString(active ? R.string.ic_keyboard_arrow_down : R.string.ic_keyboard_arrow_right));
}
@Override
public void toggleSelectionMode(boolean editModeEnabled) {
nodeSelector.setVisibility(editModeEnabled ? View.VISIBLE : View.GONE);
nodeSelector.setChecked(mNode.isSelected());
}
}